<template>
  <div id="communityList" class="same-change-oldstyle">
    <div class="same-head-box">
      <div class="saem-seat-box">
        <div class="saem-seat-left">
          <span>当前位置：</span>
          <el-breadcrumb separator-class="el-icon-arrow-right">
            <el-breadcrumb-item>员工管理</el-breadcrumb-item>
            <el-breadcrumb-item>销售员管理</el-breadcrumb-item>
            <el-breadcrumb-item>销售列表</el-breadcrumb-item>
          </el-breadcrumb>
        </div>
        <div class="saem-seat-right">
          <button class="same-search-btns same-search-export" @click="RefreshFun">刷新</button>
          <!-- <button class="same-search-btns" @click="returnBack">返回</button> -->
        </div>
      </div>
      <div class="same-search-box">
        <div>
          <div class="same-search-left">
            <div class="same-left-one">
              <span class="same-search-span">销售名称：</span>
              <el-input size="medium" v-model="full_name" placeholder="请输入销售名称" style="width: 160px;"></el-input>
            </div>
            <div class="same-left-one">
              <span class="same-search-span">电话：</span>
              <el-input size="medium" maxlength="11" v-model="tel" placeholder="请输入电话" style="width: 160px;"></el-input>
            </div>
            <div class="same-left-one" v-if="!moveShow">
              <div class="same-left-zdshwo" :hidden="!moveBtn" @click="openMore">更多查询条件<i
                  :class="[moveShow?'el-icon-arrow-up':'el-icon-arrow-down']"></i></div>
              <el-button type="primary" size="medium" @click="search()">搜索</el-button>
              <el-button type="info" size="medium" @click="reset()">重置</el-button>
            </div>
          </div>
          <div class="same-search-right"></div>
        </div>
        <!-- 搜索更多 -->
        <div>
          <div class="same-search-left new-sear-height" ref="leftHeight">
            <div class="same-left-one">
              <span class="same-search-span same-search-fisrt">添加日期：</span>
              <el-date-picker style="width:140px" v-model="date1" type="date" size="medium" value-format="yyyy-MM-dd"
                placeholder="开始日期">
              </el-date-picker>
              <div class="same-interval">至</div>
              <el-date-picker style="width:140px" v-model="date2" type="date" size="medium" value-format="yyyy-MM-dd"
                placeholder="结束日期">
              </el-date-picker>
            </div>
            <div class="same-left-one">
              <span class="same-search-span">状态：</span>
              <el-select v-model="state" placeholder="请选择" style="width: 140px;">
                <el-option v-for="item in stateList" :key="item.stateId" :label="item.stateName" :value="item.stateId">
                </el-option>
              </el-select>
            </div>
            <div class="same-left-one" :class="[moveShow?'':'new-sear-opacity']">
              <div class="same-left-zdshwo" :hidden="!moveBtn" @click="openMore">收起更多查询条件<i
                  :class="[moveShow?'el-icon-arrow-up':'el-icon-arrow-down']"></i></div>
              <el-button type="primary" size="medium" @click="search()">搜索</el-button>
              <el-button type="info" size="medium" @click="reset()">重置</el-button>
            </div>
          </div>
          <div class="same-search-right"></div>
        </div>
      </div>
    </div>
    <div class="same-table-box">
      <div class="tabel_header">
        <h4 class="same-title-box">
          我的销售员
        </h4>
        <div class="same-left-one">
          <el-button type="primary" size="mini" @click="addPromoter()" icon="el-icon-circle-plus">添加</el-button>
        </div>
      </div>

      <div class="table_box">


        <div class="common-table-outer">
          <el-table class="common-table" v-loading="loading" header-cell-class-name="common-table-header-cell"
            :data="tableData" stripe>
            <el-table-column header-align="center" width="70" align="center" label="序号">
							<template slot-scope="scope">
								{{scope.$index+1+(pageNo-1)*pageSize}}
							</template>
						</el-table-column>
            <el-table-column align="center" prop="full_name" label="销售名称">
            </el-table-column>

            <el-table-column align="center" prop="account" label="账号">
            </el-table-column>

            <el-table-column align="center" prop="tel" label="电话">
            </el-table-column>

            <el-table-column align="center" prop="commission" label="提成占比">
            </el-table-column>

            <el-table-column align="center" prop="id" label="账户余额">
              <template slot-scope="scope">
                {{scope.row.account_balance|filterNumber}}
              </template>
            </el-table-column>

            <el-table-column align="center" label="冻结金额">
              <template slot-scope="scope">
                {{scope.row.freeze_money|filterNumber}}
              </template>
            </el-table-column>

            <el-table-column align="center" prop="id" label="充值账户余额">
              <template slot-scope="scope">
                {{scope.row.recharge_account_balance|filterNumber}}
              </template>
            </el-table-column>

            <el-table-column align="center" prop="id" label="状态">
              <template slot-scope="scope">
                <el-tag size="mini" type="success" v-if="scope.row.state == 1">正常</el-tag>
                <el-tag size="mini" type="warning" v-else-if="scope.row.state == 2">注销</el-tag>
              </template>
            </el-table-column>

            <el-table-column align="center" prop="add_time" label="添加时间">
            </el-table-column>

            <el-table-column width="200" align="center" prop="id" label="操作">
              <template slot-scope="scope">
                <el-link class="custom-link" @click="edit(scope.row.id)">编辑</el-link>
                <el-link class="custom-link" @click="detail(scope.row.id)">查看</el-link>
              </template>
            </el-table-column>

            <template slot="empty" v-if="isLoad">
              <div class="new-no-data-show">
                <img src="../../assets/images/no-data.png" alt="">
                <div>暂无相关数据</div>
              </div>
            </template>
          </el-table>

          <div class="same-page-inShow" v-if="tableData.length>0 && isLoad">
            <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
              :current-page.sync="pageNo" :page-sizes="pageSizesList" :page-size="pageSize"
              layout="total, prev, pager, next, jumper, sizes" :total="totalDataNumber">
            </el-pagination>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    name: "communityList",
    data: function () {
      return {
        date1: '',
        date2: '',
        stateList: [
          {
            stateId: "",
            stateName: "全部"
          },
          {
            stateId: 1,
            stateName: "正常"
          },
          {
            stateId: 2,
            stateName: "注销"
          }
        ],
        state: "",
        pageNo: 1,
        pageSize: 15,
        pageSizesList: [15, 30, 40, 50],
        tableData: [], // 返回的结果集合
        totalDataNumber: 0, // 数据的总数,-----
        loading: false, //加载动画
        userAgent: "",
        full_name: "",
        tel: "",
        isLoad: false,

        moveBtn: false,//是否暂时更多查询条件按钮按钮 搜索条件控制
        moveShow: false,//是否开启动画
        scrollHeight: '',//需要监听的高度
      };
    },
    // 初始化执行
    created: function () {
      this.$emit('gitHidden', true);//是否隐藏底部版权 true 隐藏 
      this.getPromoterList(); // 获取园区列表数据
    },
    inject: [
      'reload'
    ],
    methods: {
      RefreshFun() {
        // 调用reload方法，刷新整个页面
        this.reload()
      },
      //返回
      returnBack() {
        this.$router.back(-1);
      },
      getPromoterList() {
        this.loading = true; //打开loading动画
        this.isLoad = false; //是否加载
        this.$post({
          url: "Partner/Salesman/salesmanList",
          data: {
            start_time: this.date1 ? this.date1 : '',
            end_time: this.date2 ? this.date2 : '',
            state: this.state,
            tel: this.tel,
            full_name: this.full_name,
            row: this.pageSize,
            page: this.pageNo
          },
          success: data => {
            //console.log(data);
            this.isLoad = true;
            this.loading = false; //关闭动画
            if (data.code == 1000) {
              // console.log(data.data);
              //that.$message.success(data.message);
              this.tableData = data.data.data;
              this.totalDataNumber = Number(data.data.page.total);
              this.pageNo = data.data.page.current_page;
            } else {
              this.$message.error(data.message);
            }
          }
        });
      },
      // 每页
      handleSizeChange(val) {
        this.pageNo = 1;
        this.pageSize = val; // 当前每页显示条数
        this.getPromoterList(); // 获取设备列表数据
      },
      // 分页
      handleCurrentChange(val) {
        this.pageNo = val;
        this.getPromoterList(); // 获取设备列表数据
      },
      //编辑
      edit(id) {
        this.$router.push({ path: "/promoterAdd", query: { id: id, type: 2 } });
      },

      detail(id) {
        this.$router.push({ path: "/promoterDetail", query: { id: id, type: 3 } });
      },
      //删除
      del(id) {
        this.$confirm("此操作将永久删除该销售, 是否继续?", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        })
          .then(() => {
            this.$post({
              url: "Partner/Salesman/deleteSalesman",
              data: {
                id: id
              },
              success: data => {
                if (data.code == 1000) {
                  //成功后更新列表，且在当前页和当前每页条数
                  this.getPromoterList(this.pageNo, this.pageSize);
                } else {
                  this.$message.error(data.message);
                }
              }
            });
          })
          .catch(() => {
            this.$message({
              type: "info",
              message: "已取消删除"
            });
          });
      },
      //添加销售
      addPromoter() {
        this.$router.push({ path: "/promoterAdd", query: { type: 1 } });
      },

      reset() {
        this.date1 = "";
        this.date2 = "";
        this.full_name = "";
        this.tel = "";
        this.state = "";
        this.pageNo = 1;
        this.getPromoterList()
      },
      //搜索园区
      search() {
        this.pageNo = 1;
        this.getPromoterList(); // 获取园区列表数据
      },
      //此处获取高度必须在dom元素创建完成之后才能获取
      gitHeight() {
        //  let clientHeight=this.$refs.leftHeight.clientHeight;
        let scrollHeight = this.$refs.leftHeight.scrollHeight;
        this.scrollHeight = scrollHeight;
        scrollHeight <= 30 ? this.moveBtn = false : this.moveBtn = true;

      },
      openMore() {
        this.moveShow = !this.moveShow;
        this.$refs.leftHeight.style.height = this.moveShow ? this.scrollHeight + 'px' : 0 + 'px';
      },
    },
    mounted() {
      this.gitHeight();
      //监听高度变化
      var that = this;
      window.addEventListener("resize", function () {
        let scrollHeight = that.$refs.leftHeight && that.$refs.leftHeight.scrollHeight ? that.$refs.leftHeight.scrollHeight : that.scrollHeight;
        that.scrollHeight = scrollHeight;
      });
    },
    watch: {
      // 如果 `scrollHeight` 发生改变，这个函数就会运行 此处是为了防止用户缩小屏幕导致页面显示不全
      scrollHeight: function (val) {
        this.$refs.leftHeight.style.height = this.moveShow ? this.scrollHeight + 'px' : 0 + 'px';
      }
    },
    activated() {
			if (this.$route.meta.isUpdate) {
				this.tableData = [];
				this.getPromoterList()
				this.$route.meta.isUpdate = false;
			}
		},

    beforeRouteEnter (to, from, next) {
      let updates = ["/promoterAdd"]
			if (updates.includes(from.path)) {
				to.meta.isUpdate = true;
			}
      next();
    },
    beforeRouteLeave(to, from, next) {
			let updates = ["/promoterAdd","/promoterDetail"];
			if (!updates.includes(to.path)) {
				from.meta.keepAlive = false; 
			} else {
				from.meta.keepAlive = true;
			}
			next();
		}
  };
</script>

<style scoped>
  #communityList {
    width: 100%;
    height: 100%;
    background: #FFFFFF;
  }

  #communityList .tabel_header {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .success-text {
    color: #67c23a;
  }

  .danger-text {
    color: #f56c6c;
  }
</style>
